The present invention relates generally to telecommunications. The invention relates more specifically to apparatus and methods for reducing or handling overload conditions experienced by a call processor in a telecommunications network.
Communication networks generally comprise nodes that are connected externally to terminal resources and connected internally to each other by network links. The network enables messages to be communicated between remote terminal resources and network nodes by transmitting a message from an originating terminal resource to a first network node, associated with the originating terminal resource, from which it is transmitted to a second network node, associated with the terminating terminal resource. Finally, the message is transmitted from the second network node to the terminating terminal resource. Examples of communication networks of this type are the public switched telephone network, internetworks, and the global, packet-switched network known as the Internet.
In this context, xe2x80x9cnetwork nodexe2x80x9d means an addressable device in the network that processes information transmitted through the network by, for example, providing switching, routing, or converting capabilities. A network node stores incoming messages as they are received in a message queue, from which they are removed when processed. Examples of network nodes include switches, routers, call processors, and protocol converters.
One measurement of the efficiency of the system is its throughput. Network throughput is a measure of the volume of incoming messages that are successfully processed by network nodes over time. In general, system throughput increases as the number of messages received increases. However, each network and each network node has a maximum xe2x80x9cload,xe2x80x9d or capacity of work that it can successfully perform. Generally, as long as the actual load on a system or system component stays below its maximum load, the system throughput increases as the actual load increases.
When the actual load exceeds the maximum load, a system xe2x80x9coverloadxe2x80x9d occurs. In an overload state, the message queues of the network nodes are at or are approaching capacity, and without an overload control strategy, further messages received by the nodes are randomly rejected or erroneously processed. For example, a protocol converter that is subject to overload conditions will receive more messages or requests for protocol conversion than it can process or output at a given time. In this condition, the protocol converter will fail to recognize and correctly process an arbitrary number of input messages. As a result, communications cannot proceed through the network at that node.
Other unpredictable results can occur during overload conditions. For example, in some networks, messages are time division multiplexed onto one or more channels linking the network nodes and terminal resources, and transmitted through the network as a plurality of packets. If individual packets are lost during an overload state, an originating node must generally re-send the entire message, even if other packets of the message were successfully transmitted. As a result, overload conditions can cause a dramatic decrease in system throughput.
When an overload condition occurs at certain types of call processors, the overload conditions can have a detrimental cascading effect on system operation. For example, one type of network node is a universal protocol converter of the type described in U.S. Pat. No. 6,111,893, entitled UNIVERSAL PROTOCOL CONVERTER. In one aspect of operation, a universal protocol converter is connected logically between a first network and a second network, in which communication protocols used by the first network and the second network are incompatible. The universal protocol converter receives, among other things, incoming messages that request a call to be established, and messages that are part of existing calls. If the universal protocol converter is in an overload condition, there is a chance that it will receive and successfully process a call setup message, and then fail to successfully process later messages that relate to that call. As a result, calls are unnecessarily set up, creating a further undesirable load on the system.
It is apparent that a critical attribute of a successful and practical communication network is the ability to handle overload conditions. In particular, there is a need in network nodes for a mechanism that can recognize overload conditions and prevent unpredictable consequences from occurring.
There is also a need, in a network node such as a call processor or universal protocol converter, for a mechanism that can recognize overload conditions, identify call setup messages that are received during an overload condition, and prevent the establishment of new calls until the overload condition subsides.
The foregoing needs, and other needs and objectives that will become apparent from the description herein, are achieved by the present invention, which comprises, in one aspect, a method for reducing an overload condition at a node of a communication system, comprising the steps of storing a plurality of upper and lower overload level values in a memory, wherein each upper and lower overload level value corresponds to a saturation condition of the node; storing a plurality of rejection proportion values in the memory, wherein each rejection threshold value is associated with one of the overload level values; determining the current saturation level of the node; and rejecting a quantity of messages received at the node equal to the rejection proportion value associated with one of the upper and lower overload level values that corresponds to the current saturation level.
One feature of this aspect is the steps of identifying a message type of the message received at the node; determining whether the message type is a first type that can be rejected or a second type that cannot be rejected; and rejecting only messages of the first type. Another feature is that the step of rejecting comprises the step of rejecting every nth call initialization message received at the node, in which n is a rejection value associated with an overload level value that is exceeded. A related feature is that the step of rejecting comprises the step of rejecting every nth initial address message received at the node, in which n is a rejection value associated with an overload level value that is exceeded.
According to another feature, the node is a message queue of a call processor. Still another feature is that the step of storing a plurality of upper and lower overload level values further comprises the steps of storing a plurality of pairs of upper and lower overload level values in a memory, wherein each pair of upper and lower overload level values corresponds to a successively greater saturation condition of the node. A related feature is that the step of storing a plurality of overload level values further comprises the step of storing an upper overload level threshold value and a lower overload level threshold value in association with each of the plurality of overload level values.
Another feature is that the step of storing a plurality of overload level values further comprises the step of storing an upper overload level threshold value and a lower overload level threshold value in association with each of the plurality of overload level values, in which the upper overload level threshold value of a lesser overload level value slightly overlaps the lower overload level threshold value of a higher overload level value, whereby such overlap dampens behavior of the method.
According to still another feature, the step of rejecting comprises the steps of receiving a call initialization message that requests establishment of a new call; and sending a responsive message to the call initialization message, whereby the responsive message terminates the new call in an orderly way. In another feature, the node is a call processor and the call initialization messages represent requests to the call processor to process a new call. In an alternative, the node is a universal protocol converter.
A related feature further involves the steps of receiving the message at an interface having a message queue; determining a current saturation level of the message queue; and storing the message in the message queue when the message is not rejected. Still another feature involves the steps of storing a rejection threshold value m in the memory in association with a loading level of a processor of the call processor; receiving one or more messages from the message queue at the processor; and rejecting every mth message received at the processor when the loading level of the processor exceeds a predetermined maximum loading level. In one alternative, the step of rejecting comprises the step of rejecting every mth call initialization message received at the processor when the loading level of the processor exceeds the predetermined maximum loading level.